Comprender las indicaciones horarias del equipo con NTP
publicado por Richard N Williams on 8th septiembre, 2008
La forma en que una computadora trata el tiempo es totalmente diferente a la forma en que los humanos la perciben. Organizamos el tiempo en segundos, minutos, horas, días, semanas, meses y años, mientras que las computadoras, por otro lado, organizan el tiempo como un solo número que representa los segundos que han transcurrido desde un único punto en el tiempo, conocido como la época principal.
La mayoría de las computadoras usan NTP (Network Time Protocol) para tratar el tiempo y las redes, muchas se sincronizan usando un servidor de tiempo NTP dedicado. El NTP no sabe nada de días, años o siglos, solo los segundos de la época prima. Esta época prima está establecida (para la mayoría de los sistemas) a la medianoche de finales del siglo XX, que para un humano se registraría como algo así como: 00: 00 - 01,01,1900.
Las computadoras, sin embargo, cuentan el tiempo como el número de segundos después de este punto. Si una computadora estaba en 1900 su marca de tiempo en la medianoche de enero 1 sería 0 mientras estaba en 1972 en la misma fecha en que la marca de tiempo sería 2,272,060,800, que representa el número de segundos desde 1900.
Las marcas de tiempo se reinician cada 136 años con el próximo ajuste en 2036, esto ha causado inquietud entre algunos que temen un escenario de tipo Millennium Bug, aunque la mayoría duda de que tales eventos ocurrieran, sin embargo, cuando ocurre una vuelta de la marca de tiempo, se agregará el entero de la era (+ 1), para permitir que las computadoras manejen períodos de tiempo que cubren más de una vuelta. Si las computadoras y el NTP necesitan lidiar con el tiempo que se extiende antes de la época de mayor desarrollo, se usa un entero negativo (para el año 1500 se usará un -3 para representar tres ciclos de 136 años).
Las marcas de tiempo se utilizan en prácticamente todas las transacciones que las computadoras modernas tienen la tarea de hacer, como enviar correos electrónicos, depurar y programar. Debido a que el tiempo es lineal, una computadora sabe que cada marca de tiempo es siempre mayor que la anterior y, por lo tanto, las computadoras y el NTP encuentran que es difícil manejar las imprecisiones a tiempo, particularmente cuando el tiempo parece ir hacia atrás.
Esto puede suceder si las computadoras no están sincronizadas al mismo tiempo. Si se envía un correo electrónico a una máquina con un reloj más lento, parece que la computadora se recibió antes de que se haya enviado. La falta de sincronización puede causar serios problemas e incluso puede dejar un sistema vulnerable a ataques maliciosos e incluso fraudes.
Debido a esto, la mayoría de las redes de computadoras están sincronizadas con UTC (Tiempo Universal Coordinado). UTC es una escala de tiempo global y la misma para todos en todo el mundo. Se basa en el tiempo que los relojes atómicos le asignan, que es muy preciso y no gana ni pierde ni un segundo en millones de años.
La mayoría de las redes de computadoras usan un dedicado NTP servidor de tiempo para recibir una hora UTC para sincronizar sus computadoras también. UTC está disponible a través de Internet (aunque no segura), a través de la red GPS (Sistema de Posicionamiento Global), o recibiendo transmisiones nacionales de tiempo y frecuencia a través de onda larga.
NTP sincroniza una computadora al verificar la hora UTC recibida y agregar o mantener la marca de tiempo de una computadora hasta que coincida perfectamente con UTC. Al usar un servidor horario NTP dedicado, UTC se puede mantener en una red a unos pocos milisegundos de tiempo UTC.